﻿//给定一个长度为 n 的字符串，找出最多包含两种字符的最长子串 t ，返回这个最长的长度。
//数据范围：1≤n≤10^5，字符串种仅包含小写英文字母
//
//输入描述：
//仅一行，输入一个仅包含小写英文字母的字符串
//输出描述：
//输出最长子串的长度
//
//输入：
//	nowcoder
//输出：
//	2
//
//输入：
//	nooooow
//输出：
//	6

#include <iostream>
#include <string>
using namespace std;
int main() {
    string s;
    cin >> s;
    int left = 0, right = 0, n = s.size();
    int hash[26] = { 0 }; // 统计窗⼝内每种字符出现了多少次
    int count = 0; // 统计窗⼝内⼀共有多少种字符
    int ret = 0;
    while (right < n) {
        if (hash[s[right] - 'a']++ == 0) count++; // 0->1, 窗⼝内多了⼀种字符
        while (count > 2) {
            if (hash[s[left++] - 'a']-- == 1) count--; // 1->0, 窗⼝内少了⼀种字符
        }
        ret = max(ret, right - left + 1);
        right++;
    }
    cout << ret << endl;
    return 0;
}












